#include<bits/stdc++.h>
using namespace std;
char s[40];
unsigned long long pw[20],dp[40][20];
int main()
{
int i,j,k,n;
scanf("%d%s",&n,s+1);
pw[0]=1;
for(i=1;i<=n;i++) pw[i]=pw[i-1]*10;
for(i=n*2;i>=1;i--)
{
for(j=0;j<=n&&j<=n*2-i+1;j++)
{
k=n*2-i+1-j;
if(j) dp[i][j]=max(dp[i][j],dp[i+1][j-1]+pw[j]*(s[i]-'0'));
if(k) dp[i][j]=max(dp[i][j],dp[i+1][j]+pw[k]*(s[i]-'0'));
}
}
for(i=1,j=n;i<=n*2;i++)
{
if(j&&dp[i][j]==dp[i+1][j-1]+pw[j]*(s[i]-'0')) printf("H"),j--;
else printf("M");
}
return 0;
}
2B - The least round way | 1324A - Yet Another Tetris Problem |
246B - Increase and Decrease | 22E - Scheme |
1566A - Median Maximization | 1278A - Shuffle Hashing |
1666F - Fancy Stack | 1354A - Alarm Clock |
1543B - Customising the Track | 1337A - Ichihime and Triangle |
1366A - Shovels and Swords | 919A - Supermarket |
630C - Lucky Numbers | 1208B - Uniqueness |
1384A - Common Prefixes | 371A - K-Periodic Array |
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |